package com.briup.day12;

import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author lining
 * @date 2024/1/23 16:07
 */
public class TestStudent2 {
    public void sort(){
        //使用自然排序实现
        //存储3个学生按照学号 从小到大
        Set<Student> set = new TreeSet<>();
        //要求学生类必须实现比较接口
        set.add(new Student(1,"tom"));
        set.add(new Student(2,"jack"));
        set.add(new Student(3,"bob"));
        System.out.println(set);
    }
    //比较器（自定义匿名内部类对象）优先级 大于 自然排序（实现比较接口）的方式
    public static void main(String[] args) {
        //使用比较器的方式排序，创建比较器对象
        Comparator<Student> comparator = new Comparator<Student>() {
            public int compare(Student o1, Student o2) {
                // o1 新增元素   o2 原来的树节点
                //   id=2         id =  5
                return o2.getId() - o1.getId();// 5-2 =3
            }
        };
        //创建TreeSet时，提供该比较器规则
        TreeSet<Student> set = new TreeSet<>(comparator);
        set.add(new Student(1,"tom"));
        set.add(new Student(2,"jack"));
        set.add(new Student(3,"bob"));
        System.out.println(set);
        //TreeSet中不允许重复的元素  比较方法确定 返回值=0 重复
        //动态性：TreeSet是一个动态集合 内部一个二叉树进行存储

    }
}
